/*
 * acm1986.c
 *
 *  Created on: 7 Apr 2010
 *      Author: xuxu
 */

#include<string.h>

int num[40001];

int findplace(int l,int r,int x)
{
	int m=(l+r)/2;
	while(l<=r)
	{
		if(x>=num[m])
		{
			l=m+1;
		}
		else
		{
			if(m<1||num[m-1]<=x)
				return m;
			else
				r=m-1;
		}
		m=(l+r)/2;
	}
	return -1;
}

int main()
{
	int count,n;
	int i,j;
	int bo;
	scanf("%d",&count);
	while(count--)
	{
		scanf("%d",&n);
		for(i=0;i<n;i++)
		{
			scanf("%d",&num[i]);
		}
		j=0;
		for(i=1;i<n;i++)
		{
			if(num[i]<num[0])
			{
				num[0]=num[i];
			}
			else if(num[i]>num[j])
			{
				j++;
				num[j]=num[i];
			}
			else
			{
				bo=findplace(0,j,num[i]);
				num[bo]=num[i];
			}
		}
		printf("%d\n",j+1);
	}
	return 0;
}
